package com.xkcyy.one.ai.common;

import com.xkcyy.one.ai.llm.model.ToolDefinition;

/**
 * 工具执行器接口
 * 
 * @author yuand
 */
public interface ToolExecutor {

    /**
     * 执行工具
     *
     * @param definition  工具定义
     * @param inputParams 输入参数(JSON格式)
     * @return 执行结果(JSON格式)
     */
    String execute(ToolDefinition definition, String inputParams);

    /**
     * 验证输入参数
     *
     * @param definition  工具定义
     * @param inputParams 输入参数(JSON格式)
     * @return 验证结果，true表示验证通过
     */
    boolean validateInput(ToolDefinition definition, String inputParams);

    /**
     * 获取工具执行器类型
     *
     * @return 执行器类型
     */
    String getType();

    /**
     * 检查工具是否支持
     *
     * @param definition 工具定义
     * @return 是否支持
     */
    boolean supports(ToolDefinition definition);
}